package pe.gob.onpe.struts.action;

import java.io.PrintWriter;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

import pe.gob.onpe.ctrlNegocio.CNPrepararEleccion;
import pe.gob.onpe.pojo.BusquedaProcesosElectoralesPojo;
import pe.gob.onpe.pojo.InstitucionSolicitantePojo;
import pe.gob.onpe.util.PARAMETROS;
import pe.gob.onpe.util.ServiceLocator;

public class AdministrarParametrosProcesoElectoralAction extends DispatchAction{

	private CNPrepararEleccion oCNPrepararEleccion = (CNPrepararEleccion)ServiceLocator.getInstance().getLocal(PARAMETROS.CNPrepararEleccion);
	
	public ActionForward buscarProcesoElectoral(ActionMapping mapping, 
														ActionForm form,
														HttpServletRequest request, 
														HttpServletResponse response) throws Exception {
		
		String nombre		= request.getParameter("nombre")==null?"":request.getParameter("nombre");
		String descripcion	= request.getParameter("descripcion")==null?"":request.getParameter("descripcion");
		int inicio			= Integer.parseInt((request.getParameter("inicio")==null || request.getParameter("inicio").toString().equals(""))?"1":request.getParameter("inicio"));
		
		BusquedaProcesosElectoralesPojo		busquedaProcesosElectoralesPojo	= oCNPrepararEleccion.obtenerProcesosElectorales(nombre,descripcion,inicio,PARAMETROS.PAGINACION_NRO_LINEAS);
		List<InstitucionSolicitantePojo>	listInstitucionSolicitantePojo	= oCNPrepararEleccion.listadoInstitucionSolicitante();
		
		request.setAttribute("busquedaProcesosElectoralesPojo", busquedaProcesosElectoralesPojo);
		request.setAttribute("listInstitucionSolicitantePojo", listInstitucionSolicitantePojo);
		
		return mapping.findForward("mostrarAdministrarParametros");
	}
	
	public ActionForward eliminarProcesoElectoral(ActionMapping mapping, 
													ActionForm form,
													HttpServletRequest request, 
													HttpServletResponse response) throws Exception {
		
		Long idProcesoElectoral = Long.parseLong(request.getParameter("idProcesoElectoral")==null?"0":request.getParameter("idProcesoElectoral"));
		
		boolean resultado = oCNPrepararEleccion.eliminarProcesoElectoral(idProcesoElectoral);
		
		PrintWriter out 		= response.getWriter();
		if(resultado){
			out.write("exito");
		}else{
			out.write("error");
		}
		return null;
	}
	
	public ActionForward modificarProcesoElectoral(ActionMapping mapping, 
													ActionForm form,
													HttpServletRequest request, 
													HttpServletResponse response) throws Exception {
		PrintWriter	out	= response.getWriter();
		boolean		resultado;
			try{
				Long	idProcesoElectoral		= Long.parseLong(request.getParameter("modProcesoElectoralId"));
				String	nombre					= request.getParameter("modNombre")==null?"":request.getParameter("modNombre");
				String	descripcion				= request.getParameter("modDescripcion")==null?"":request.getParameter("modDescripcion");
				Long	idInstitucionSolicitante= Long.parseLong(request.getParameter("modInstitucionSolicitanteId")==null?"0":request.getParameter("modInstitucionSolicitanteId"));
				Integer	duracionSesion			= Integer.parseInt(request.getParameter("modDuracionSesion")==null?"0":request.getParameter("modDuracionSesion"));
				Integer	numeroIntentos			= Integer.parseInt(request.getParameter("modNumeroIntentos")==null?"0":request.getParameter("modNumeroIntentos"));
				
				resultado 		= oCNPrepararEleccion.modificarProcesoElectoral(idProcesoElectoral, idInstitucionSolicitante, nombre, descripcion, duracionSesion, numeroIntentos);
				
				if(resultado){
					out.write("exito");
				}else{
					out.write("error");
				}
			}catch (Exception e) {
				e.printStackTrace();
				out.write("error");
			}
		return null;
	}
	
	public ActionForward registrarProcesoElectoral(ActionMapping mapping, 
													ActionForm form,
													HttpServletRequest request, 
													HttpServletResponse response) throws Exception {
		PrintWriter	out	= response.getWriter();
		boolean		resultado;
		try{
			Long	idProcesoElectoral		= null;
			//Long	idProcesoElectoral		= Long.parseLong(request.getParameter("modProcesoElectoralId"));
			String	nombre					= request.getParameter("modNombre")==null?"":request.getParameter("modNombre");
			String	descripcion				= request.getParameter("modDescripcion")==null?"":request.getParameter("modDescripcion");
			Long	idInstitucionSolicitante= Long.parseLong(request.getParameter("modInstitucionSolicitanteId")==null?"0":request.getParameter("modInstitucionSolicitanteId"));
			Integer	duracionSesion			= Integer.parseInt(request.getParameter("modDuracionSesion")==null?"0":request.getParameter("modDuracionSesion"));
			Integer	numeroIntentos			= Integer.parseInt(request.getParameter("modNumeroIntentos")==null?"0":request.getParameter("modNumeroIntentos"));
			
			resultado = oCNPrepararEleccion.registrarProcesoElectoral(idProcesoElectoral, idInstitucionSolicitante, nombre, descripcion, duracionSesion, numeroIntentos);
			
			if(resultado){
				out.write("exito");
			}else{
				out.write("error");
			}
		}catch (Exception e) {
			e.printStackTrace();
			out.write("error");
		}
		return null;
	}
}
